<?php

class Doctrine_Model_Validador {

    //put your code here
    private $descripcionDeErrores;

    public function agregarMensajesDeError($validador,$campo) {
        foreach ($validador->getMessages() as $mensajes) {
            $this->descripcionDeErrores =$this->descripcionDeErrores."  ".$mensajes;
        }
    }

    public function formRegistroPersona($datos) {
        $valido = true;
        $mailValidator = new Zend_Validate_EmailAddress();
        $requeridoValidator = new Zend_Validate_NotEmpty();
        $longitudValidator = new Zend_Validate_StringLength(3, 10);
        $numValidator = new Zend_Validate_Int();
        $alfaValidator = new Zend_Validate_Alpha();
        $alfaNumValidator = new Zend_Validate_Alnum();

        $apellidoValidator = new Zend_Validate();
        $apellidoValidator->addValidator(new Zend_Validate_Alpha(true))
                ->addValidator(new Zend_Validate_StringLength(1, 25));
        $nombreValidator = new Zend_Validate();
        $nombreValidator->addValidator(new Zend_Validate_Alpha(true))
                ->addValidator(new Zend_Validate_StringLength(1, 25));


        $sexoValidator = new Zend_Validate();
        $sexoValidator->addValidator(new Zend_Validate_Alpha())
                ->addValidator(new Zend_Validate_NotEmpty());


        $dniValidator = new Zend_Validate();
        $dniValidator->addValidator(new Zend_Validate_Int())
                ->addValidator(new Zend_Validate_StringLength(7, 8));

        $referenciasValidator = new Zend_Validate();
        $referenciasValidator->addValidator(new Zend_Validate_Int())
                ->addValidator(new Zend_Validate_GreaterThan(0));


        if (!$apellidoValidator->isValid($datos['apellido'])) {
            $this->agregarMensajesDeError($apellidoValidator,'apellido');
            $valido = false;
        }
      
        if (!$nombreValidator->isValid($datos['nombre'])) {
            $this->agregarMensajesDeError($nombreValidator,'nombre');
            $valido = false;
        }
          
//        if (!$mailValidator->isValid($datos['mail'])) {
//            $this->agregarMensajesDeError($mailValidator);
//            $valido = false;
//        }
        if (!$dniValidator->isValid($datos['nro_documento'])) {
            $this->agregarMensajesDeError($dniValidator,'numero de Documento');
            $valido = false;
        }
        if (!$sexoValidator->isValid($datos['sexo'])) {
            $this->agregarMensajesDeError($sexoValidator,'sexo');
            $valido = false;
        }
        if (!$referenciasValidator->isValid($datos['tipo_documento_id'])) {
            $this->agregarMensajesDeError($referenciasValidator,'tipo de documento');
            $valido = false;
        }
        if (!$referenciasValidator->isValid($datos['estado_civil_id'])) {
            $this->agregarMensajesDeError($referenciasValidator,'estado civil');
            $valido = false;
        }

    //        if (!$alfaNumValidator->isValid($datos['cuil'])) {
    //            $this->agregarMensajesDeError($alfaNumValidator,'cuil');
    //            $valido = false;
    //        }

        if ($valido) {
            $data = array(
                'valido' => $valido,
                'descripcion' => $this->descripcionDeErrores
            );
        } else {
               $data = array(
                'valido' => $valido,
                'descripcion' => $this->descripcionDeErrores
            );
        }
        return $data;
    }

}

?>
